﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DiscreteEventModel.Common {

    public interface IFactory<T, TObj>
        where T : Singleton<T>, IFactory<T, TObj>, new() {
        TObj CreateObject();
    }

    public interface IFactory<T, TObj, TParam>
        where T : Singleton<T>, IFactory<T, TObj, TParam>, new() {
        TObj CreateObject(TParam param);
    }
}
